package DataStructure.二叉树;

import java.util.ArrayList;
import java.util.List;

/**
 * @author ligaojian
 * @version 1.0
 * @description: 后序遍历
 * @date 2021/11/8 22:49
 */
public class postorderTraversal {

    public List<Integer> postorderTraversal1(TreeNode root) {
        List<Integer> arr = new ArrayList<>();
        postorder(root,arr);
        return arr;
    }

    public void postorder(TreeNode root,List<Integer> arr) {

        if (root ==null) {
            return;
        }
        postorder(root.left,arr);
        postorder(root.right,arr);
        arr.add(root.val);

        //笔记：三种遍历的方式基本一样。唯一区别就是调用递归的顺序不同。
        //值得注意的是，首先确定最后，最小的子树的遍历，最小的子函数执行过程
        //先序：中左右   中序：左中右   后序  左右中
    }
}
